package common.server.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.Valid;

/**
 * 外部请求报文消息
 * 
 * @author Administrator
 * @version [版本号, 2017/11/15 0015]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
@ApiModel(value = "OutsideRequestMessage", description = "统一请求封装对象，所有请求抽象参数对象")
public class OutsideRequestMessage<T extends BaseBody> extends Message {

	@Valid
	@ApiModelProperty(value = "具体报文实体")
	private T reqBody;

	/**
	 * 设备id
	 */
	@ApiModelProperty(value = "设备id")
	private String deviceId;
	/**
	 * IMEI
	 */
	@ApiModelProperty(value = "IMEI")
	private String imsi;

	/**
	 * IMSI
	 */
	@ApiModelProperty(value = "IMSI")
	private String imei;
	/**
	 * 终端型号,没有值时传““，客户端获取后必传,例如：SM-N9009
	 */
	@ApiModelProperty(value = "终端型号")
	private String model;
	/**
	 * 终端品牌,没有值时传““，客户端获取后必传,例如：iPhone
	 */
	@ApiModelProperty(value = "终端型号")
	private String brand;
	/**
	 * 操作系统版本
	 */
	@ApiModelProperty(value = "操作系统版本")
	private String osVersion;
	/**
	 * 操作系统
	 */
	@ApiModelProperty(value = "操作系统")
	private String os;
	/**
	 * 屏幕分辨率
	 */
	@ApiModelProperty(value = "屏幕分辨率")
	private String sration;
	/**
	 * 加密级别 0：不加密 1：base64 2：MD5 3：RSA加密（服务密码登录、服务密码修
	 */
	@ApiModelProperty(value = "加密级别")
	private String enlv;
	/**
	 * tok码 保留字段目前传会话加密后的sessionid
	 */
	@ApiModelProperty(value = "tok码")
	private String tcode;

	/**
	 * 客户端版本号
	 */
	@ApiModelProperty(value = "客户端版本号")
	private String appVersion;

	/**
	 * 客户端渠道号
	 */
	@ApiModelProperty(value = "客户端渠道号")
	private String appChannel;

	/**
	 * 基站位置（LAC,CID）
	 */
	@ApiModelProperty(value = "基站位置（LAC,CID）")
	private String laccid;
	/**
	 * mac地址
	 */
	@ApiModelProperty(value = "mac地址")
	private String smac;

	/**
	 * IP地址 不是ip4的ip，需要跟客户端核实
	 */
	@ApiModelProperty(value = "IP地址")
	private String sip;

	/**
	 * GPS精度等级
	 */
	@ApiModelProperty(value = "GPS精度等级")
	private String gpslevel;

	/**
	 * 网络类型
	 */
	@ApiModelProperty(value = "网络类型")
	private String sstype;

	/**
	 * GPS精度等级
	 */
	@ApiModelProperty(value = "GPS精度等级")
	private String mcc;

	/**
	 * 网络信号强弱
	 */
	@ApiModelProperty(value = "网络信号强弱")
	private String swstrong;

	/**
	 * 经纬度信息
	 */
	@ApiModelProperty(value = "经纬度信息")
	private String ljloaction;

	/**
	 * 客户端访问时间 时间格式：yyyy-MM-dd HH:mm:ss:SSS
	 */
	@ApiModelProperty(value = "客户端访问时间")
	private String time;

	/**
	 * 登录号码，空时:99999999999
	 */
	@ApiModelProperty(value = "登录号码")
	private String tel;

	/**
	 * 地市编码
	 */
	@ApiModelProperty(value = "地市编码")
	private String cityCode;

	/**
	 * 签名串
	 */
	@ApiModelProperty(value = "签名串")
	private String signSt;

	/**
	 * 系统类型编码
	 */
	@ApiModelProperty(value = "系统类型编码")
	private String st;

	/**
	 * 设备安全标识
	 */
	@ApiModelProperty(value = "设备安全标识")
	private String cid;

	/**
	 *
	 */
	@ApiModelProperty(value = "包签名")
	private String ak;

	public String getDeviceId() {
		return deviceId;
	}

	public void setDeviceId(String deviceId) {
		this.deviceId = deviceId;
	}

	public String getImsi() {
		return imsi;
	}

	public void setImsi(String imsi) {
		this.imsi = imsi;
	}

	public String getImei() {
		return imei;
	}

	public void setImei(String imei) {
		this.imei = imei;
	}

	public String getModel() {
		return model;
	}

	public void setModel(String model) {
		this.model = model;
	}

	public String getOsVersion() {
		return osVersion;
	}

	public void setOsVersion(String osVersion) {
		this.osVersion = osVersion;
	}

	public String getOs() {
		return os;
	}

	public void setOs(String os) {
		this.os = os;
	}

	public String getSration() {
		return sration;
	}

	public void setSration(String sration) {
		this.sration = sration;
	}

	public String getEnlv() {
		return enlv;
	}

	public void setEnlv(String enlv) {
		this.enlv = enlv;
	}

	public String getTcode() {
		return tcode;
	}

	public void setTcode(String tcode) {
		this.tcode = tcode;
	}

	public String getAppVersion() {
		return appVersion;
	}

	public void setAppVersion(String appVersion) {
		this.appVersion = appVersion;
	}

	public String getAppChannel() {
		return appChannel;
	}

	public void setAppChannel(String appChannel) {
		this.appChannel = appChannel;
	}

	public String getLaccid() {
		return laccid;
	}

	public void setLaccid(String laccid) {
		this.laccid = laccid;
	}

	public String getSmac() {
		return smac;
	}

	public void setSmac(String smac) {
		this.smac = smac;
	}

	public String getSip() {
		return sip;
	}

	public void setSip(String sip) {
		this.sip = sip;
	}

	public String getGpslevel() {
		return gpslevel;
	}

	public void setGpslevel(String gpslevel) {
		this.gpslevel = gpslevel;
	}

	public String getSstype() {
		return sstype;
	}

	public void setSstype(String sstype) {
		this.sstype = sstype;
	}

	public String getMcc() {
		return mcc;
	}

	public void setMcc(String mcc) {
		this.mcc = mcc;
	}

	public String getSwstrong() {
		return swstrong;
	}

	public void setSwstrong(String swstrong) {
		this.swstrong = swstrong;
	}

	public String getLjloaction() {
		return ljloaction;
	}

	public void setLjloaction(String ljloaction) {
		this.ljloaction = ljloaction;
	}

	public String getTime() {
		return time;
	}

	public void setTime(String time) {
		this.time = time;
	}

	public String getTel() {
		return tel;
	}

	public void setTel(String tel) {
		this.tel = tel;
	}

	public String getCityCode() {
		return cityCode;
	}

	public void setCityCode(String cityCode) {
		this.cityCode = cityCode;
	}

	public String getSignSt() {
		return signSt;
	}

	public void setSignSt(String signSt) {
		this.signSt = signSt;
	}

	public T getReqBody() {
		return reqBody;
	}

	public void setReqBody(T reqBody) {
		this.reqBody = reqBody;
	}

	public String getSt() {
		return st;
	}

	public void setSt(String st) {
		this.st = st;
	}

	public String getCid() {
		return cid;
	}

	public void setCid(String cid) {
		this.cid = cid;
	}

	public String getBrand() {
		return brand;
	}

	public void setBrand(String brand) {
		this.brand = brand;
	}

	public String getAk() {
		return ak;
	}

	public void setAk(String ak) {
		this.ak = ak;
	}

	@Override
	public String toString() {
		return "OutsideRequestMessage{" +
				"reqBody=" + reqBody +
				", deviceId='" + deviceId + '\'' +
				", imsi='" + imsi + '\'' +
				", imei='" + imei + '\'' +
				", model='" + model + '\'' +
				", osVersion='" + osVersion + '\'' +
				", os='" + os + '\'' +
				", sration='" + sration + '\'' +
				", enlv='" + enlv + '\'' +
				", tcode='" + tcode + '\'' +
				", appVersion='" + appVersion + '\'' +
				", appChannel='" + appChannel + '\'' +
				", laccid='" + laccid + '\'' +
				", smac='" + smac + '\'' +
				", sip='" + sip + '\'' +
				", gpslevel='" + gpslevel + '\'' +
				", sstype='" + sstype + '\'' +
				", mcc='" + mcc + '\'' +
				", swstrong='" + swstrong + '\'' +
				", ljloaction='" + ljloaction + '\'' +
				", time='" + time + '\'' +
				", tel='" + tel + '\'' +
				", cityCode='" + cityCode + '\'' +
				", signSt='" + signSt + '\'' +
				", st='" + st + '\'' +
				", cid='" + cid + '\'' +
				", brand='" + brand + '\'' +
				", ak='" + ak + '\'' +
				'}';
	}
}
